_____ _    _         _____  _____ _   _          _____   _____  
    / ____| |  | |  /\   |  __ \|_   _| \ | |   /\   / _ \ \ / / _ \ 
   | |  __| |  | | /  \  | |__) | | | |  \| |  /  \ | | | \ V / | | |
   | | |_ | |  | |/ /\ \ |  _  /  | | | . ` | / /\ \| | | |> <| | | |
   | |__| | |__| / ____ \| | \ \ _| |_| |\  |/ ____ \ |_| / . \ |_| |
    \_____|\____/_/    \_\_|  \_\_____|_| \_/_/    \_\___/_/ \_\___/ 
                                                                     
                    ./Guarina0x0
Titulo: TryHackMe - HaskHell
Fecha: 19-07-2021
Descripcion: Enumeracion - Fuzzing - Flask

TryHackMe - HaskHell Writeup

## Ping:

ping -c1 10.10.231.128

Mediante el comando ping vamos a trazar una ruta ICMP para ver si la maquina esta activa y ante que tipo de sistema operativo estamos

Podemos ver que la respuesta del ttl es 63 , el TTL en maquinas Linux es 64 y en maquinas Windows 128 , en este caso es 63 porque pasa por un nodo intermediario.

## Enumeracion:

Ahora vamos a proceder a ver que servicios tiene esta maquina abiertos para ello vamos a realizar una enumeracion de puertos:

Mediante el parametro --min-rate 5000 va a emitir paquetes no mas lento que 5000 paquetes por segundo

Nos reporta 2 puertos , uno de ellos no nos reconoce ante que servicio estamos , por lo que vamos a tener que realizar un escaneo mas exhaustivo , para reconocer versiones que corren para los servicios y aplicar algunos scripts basicos de Nmap

Aqui ya podemos ver que estamos ante:

  • Puerto 22 SSH
  • Puerto 5001 HTTP
  • Mediante la herramienta WhatWeb vamos a ver si estamos ante algun gestor de contenido:

    No nos reporta gran cosa , por lo que vamos abrir la pagina web mediante el navegador y vamos a ir inspeccionandola

    Tiene algun directorio web , que nos proporciona algo mas de informacion , pero poca cosa

    Una vez aqui que no hemos encontrado gran cosa , vamos a realizar Fuzzing en busqueda de directorios web ocultos mediante Wfuzz

    ## Enumeracion Web:

    sudo wfuzz -c --hc=404 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.10.231.128:5001/FUZZ

    Nos reporta un directorio web llamado /submit , vamos a ver que contiene:

    Podemos ver una subida de archivos , como la maquina se llama Haskhell que es un lenguaje de programacion , se me ocurre crearme una shell reversa a nuestro equipo de atacante para ver si se ejecuta cuando se realize la subida

    Aqui podemos ver la shell reversa en el lenguaje HaskHell:

    ## Flag User.txt:

    Si nos ponemos a la escucha cuando subamos el archivo de la shell reversa vamos a poder ver que ya estamos dentro de la maquina

    Y ya podremos visualizar el flag del usuario:

    Ahora podemos ir listando los directorios y vamos a ver que en el usuario llamado "prof" tenemos el directorio del ssh con el que vamos a poder copiar el id_rsa y conectarnos mediante SSH

    Podemos ver el Id_RSA que nos podemos copiar para intentar auntentificarnos:

    Ahora vamos a proceder a auntentificarnos mediante el Id_Rsa del usuario prof:

    ## Escalada de Privilegios:

    Vamos a buscar permisos SUID que podamos ejecutar procesos como el usuario Root , vamos a ver que tenemos un potencial servicio /usr/bin/flask run

    Si buscamos la forma de como explotar este servicio , vamos a ver que con los siguientes comandos podemos convertinos en el usuario Root:

    echo 'import pty; pty.spawn("/bin/bash")' > guarina0x0.py export FLASK_APP=guarina0x0.py sudo /usr/bin/flask run

    Ya podemos visualizar el Flag de Root.

    Ya tendriamos la Maquina HaskHell con una dificultad Media Explotada!